﻿using System.Collections.Generic;
using Common;

namespace CSC440TeamOne.CSC440BusinessService.Interface.Services
{
    /// <summary>
    /// 
    /// </summary>
    public interface IBusinessService
    {
        void AddUser(User user);

        User FindUserById(string id);

        List<Question> LoadAllQuestions();

        void SaveQuestionaireAnswer(int questionID, string answer);

        DailyEntryViewModel LoadDailyEntryViewForCurrentUser();

        MyProgressViewModel LoadHealthProgressForCurrentUser();

        MyHealthGoalConfigViewModel LoadUserHealthGoalsForCurrentUser();

        void SaveHealthConfig(MyHealthGoalConfigViewModel model);

        SubmitRecipeModel getNewRecipeViewModel();

        void parse(SubmitRecipeModel model);

        ProcessRegistrationModel LoadProcessRegistrationModel();

        MyRecipeViewModel LoadMyRecipeViewModelForCurrentUser();

        void saveViewRecipeModel(MyRecipeViewModel model);

        ToleranceConfigListViewModel LoadToleranceConfigItems();

        ToleranceConfigDetailsViewModel LoadHealthParameterByID(int healthParameterID);

        void SaveHealthParameterConfig(ToleranceConfigDetailsViewModel model);

        void LoadSubmittedRecipesModel(SubmittedRecipesModel model);

        void SaveDailyEntryViewModel(DailyEntryViewModel model);

        void LoadRecipe(MyRecipeViewModel model);

        void LoadRecipeByValue(MyRecipeViewModel model);

        MyFoodTrackerViewModel LoadMyFoodTrackerViewModelForCurrentUser();

        void LoadRecipe(MyFoodTrackerViewModel model);

        void LoadRecipeByValue(MyFoodTrackerViewModel model);

        void saveHelpText(int questionID, HelpText helpText);

        /// <summary>
        /// Gets the index of the user manual model by current.
        /// </summary>
        /// <param name="sectionId">The section id.</param>
        /// <returns></returns>
        UserManualModel GetUserManualModelByCurrentIndex(int sectionId);

        /// <summary>
        /// Adds the content of the user manual.
        /// </summary>
        /// <param name="model">The model.</param>
        void AddUserManualContent(UserManualModel model);

        /// <summary>
        /// Adds the user manual section.
        /// </summary>
        /// <param name="model">The model.</param>
        void AddUserManualSection(UserManualModel model);

        /// <summary>
        /// Saves the user manual model.
        /// </summary>
        /// <param name="model">The model.</param>
        void SaveUserManualModel(UserManualModel model);

        void LoadMyHealthSnapshotModel(MyHealthSnapshotModel m);

        void FindRecipeByIDforModel(VerifyRecipeModel model);

        User LoadCurrentUser();

        void LoadPrintableRecipe(MyRecipeViewModel model);

        void LoadPrintableRecipe2(MyRecipeViewModel model);
    }
}
